#ifndef __PASSWORD_H
#define __PASSWORD_H

#include "system.h"

#define MAX_PASSWORD_LENGTH 16

// 密码数据结构
typedef struct {
    uint16_t id;                         // 密码ID
    uint8_t  password[MAX_PASSWORD_LENGTH]; // 密码内容
    uint8_t  length;                     // 密码长度
    uint8_t  privilege;                  // 权限级别
    uint32_t register_time;              // 注册时间
    bool     valid;                      // 是否有效
} PasswordData;

// 密码管理初始化
SystemStatus PWD_Init(void);

// 添加密码
SystemStatus PWD_Add(const uint8_t *password, uint8_t length, uint16_t *id);

// 删除密码
SystemStatus PWD_Delete(uint16_t id);

// 密码匹配
SystemStatus PWD_Match(const uint8_t *password, uint8_t length, uint16_t *id);

// 修改密码
SystemStatus PWD_Modify(uint16_t id, const uint8_t *new_password, uint8_t length);

// 获取已注册密码数量
uint16_t PWD_GetCount(void);

// 清空所有密码
SystemStatus PWD_Clear(void);

#endif // __PASSWORD_H 